<?php
/**
 * 腾讯QQSDK 
 */
class class_qq_adv
{
	//应用的APPID
	var $appid = "1105265280";

	public function __construct($appid = NULL, $appsecret = NULL)
	{
		if($appid){
			$this->appid = $appid;
	    }
	    if($appsecret){
			$this->appsecret = $appsecret;
	    }
	}
  
	//获取用户token
	public function get_openid($access_token)
	{		
		$graph_url = "https://graph.qq.com/oauth2.0/me?access_token=".$access_token; 
		$this->access_token = $access_token;				    			
		$str  = file_get_contents($graph_url);
		if (strpos($str, "callback") !== false)
	    {
	        $lpos = strpos($str, "(");
	        $rpos = strrpos($str, ")");
	        $str  = substr($str, $lpos + 1, $rpos - $lpos -1);
	    }
		$res = json_decode($str,true);
	    if (isset($res['openid']))
	    {
			$this->openid = $res['openid'];
	    }
		
	    return $res;
	}
  
	//获取用户基本信息
	public function get_user_info()
	{
		$url = "https://graph.qq.com/user/get_user_info?access_token=".$this->access_token."&oauth_consumer_key=".$this->appid."&openid=".$this->openid;
	    $res = $this->https_request($url);
		$row = json_decode($res, true);
		$row['openid'] = $this->openid;
	    return $row;
		
//		ret	返回码
//		msg	如果ret<0，会有相应的错误信息提示，返回数据全部用UTF-8编码。
//		nickname	用户在QQ空间的昵称。
//		figureurl	大小为30×30像素的QQ空间头像URL。
//		figureurl_1	大小为50×50像素的QQ空间头像URL。
//		figureurl_2	大小为100×100像素的QQ空间头像URL。
//		figureurl_qq_1	大小为40×40像素的QQ头像URL。
//		figureurl_qq_2	大小为100×100像素的QQ头像URL。需要注意，不是所有的用户都拥有QQ的100x100的头像，但40x40像素则是一定会有。
//		gender	性别。 如果获取不到则默认返回"男"
//		is_yellow_vip	标识用户是否为黄钻用户（0：不是；1：是）。
//		vip	标识用户是否为黄钻用户（0：不是；1：是）
//		yellow_vip_level	黄钻等级
//		level	黄钻等级
//		is_yellow_year_vip	标识是否为年费黄钻用户（0：不是； 1：是）
	}

	//https请求
	public function https_request($url, $data = null)
	{
	    $curl = curl_init();
	    curl_setopt($curl, CURLOPT_URL, $url);
	    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
	    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
	    if (!empty($data)){
	      curl_setopt($curl, CURLOPT_POST, 1);
	      curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
	    }
		curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
		$output = curl_exec($curl);
		curl_close($curl);
		return $output;
	}

}

?>